﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;
using System.Collections.Generic;
using Sebastof.Types;

#endregion

namespace Sebastof.Services.Interfaces {
	/// <summary>
	/// Is responsible for managing changes within the system, which includes.
	/// - storing objects that have changes
	/// - storing objects that have collection based changes
	/// - storing objects that have been added
	/// - storing objects that should been deleted
	/// </summary>
	public interface IChangeTrackingStorageService {
		#region Public Methods

		IList<Object> CurrentDepositedObjectsHaveChanges { get; }
		IList<Object> CurrentDepositedObjectsHaveToBeAdded { get; }
		IList<Object> CurrentDepositedObjectsHaveCollectionChanges { get; }
		IList<Object> CurrentDepositedObjectsShouldDeleted { get; }
		IList<ChangeSet> CurrentDepositedChangesOfNonFullyLoadedObjects { get; }

		#endregion
	}
}